<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title>64_window对象</title>
		<script>
			/* 
			Window对象
			- 在浏览器中，浏览器为我们提供了一个window对象， 可以直接访问
			-window对象代表的是测览器窗口，通过该对象可以对浏览器窗口进行各种操作
				除此之外window对象还负责存储JS中的内置对象和浏览器的宿主对象
			-window对象的属性可以通过window对象访问， 也可以直接访间
			 */

			// alert(window);
			//window.alert("22");
			window.console.log("winds");
			window.a = 100; //向window对象中添加的属性会自动成为全局变量
			console.log("a==", a);
			/* 
			var 用来声明变量，作用和let相同，但是var不具有块作用域。
			- 在全局中使用var声明的变量，都会作为window对象的属性保存。
			- 使用function声明的函数，都会作为window的方法保存。
			- 使用let声明的变量不会存储在window对象中，而是存在一个秘密的小地方(无法访问)。
			 */

			function fn() {
				console.log("我是function");
			}

			window.fn();

			let c = 33;
			console.log("let_c=", window.c); //let_c= undefined，window对象中没有c变量。

			let b = 33;
			window.b = 66;
			console.log(b); //windwon和使用let声明一个相同变量，首先访问let声明的。

			function fn2() {
				var d = 10; ///var虽然没有块作用域，但有函数作用域。
				//在局部作用域中，如果没有使用var或let声明变量，
				//则变量会自动成为window对象的属性也就是全局变量
				e=20;
			}
			fn2();
			//console.log(d); //d只是在fn2中定义，会报错
			console.log(e);//e变成全局变量。
		</script>
	</head>
	<body>
	</body>
</html>